3rd party storage
アプリAのデータを(Aの開発者でも利用者のローカルでもない)第三者のストレージサービスが管理すること
そのようなストレージサービスのこと
アプリAのデータを管理するためには……
1: 利用者がそのような第三者ストレージを契約して、A用のストレージを払い出す
2: 利用者がアプリAの「接続先ストレージ」に、1のストレージを設定する
何が嬉しい?
アプリ開発者がデータストレージを用意しなくて済む
Q: 利用者にストレージを用意させるのってだるくない?
少しはだるいが、IT知らない人でもできる程度には優しい
TwitterやGoogleのアカウントで認証する、ってのは今どき普通にあると思う
SSOとでも言えばいいのか
アレのストレージ版みたいなもの、だと思ってもらえたらわかりやすいかもsta.icon
新しい概念だからか、伝わりにくい感じがする
俺の感性がゴミでなければ(かつ技術的に採算取れる感じで可能なのであれば)、そのうちこのネタでメシを食うベンチャーがいくつも出てくる
比較するとこう
table:t
パラダイム フロントの画面 バックの処理 データ
1 デスクトップアプリ 利用者のPC 利用者のPC 利用者のPC
2 Webアプリ サービス提供側インフラ(*1) サービス提供側インフラ サービス提供側インフラ
3 3rd party storage製のアプリ サービス提供側インフラ(*1) なし(*2) 3rd party storage事業者側インフラ
*1
厳密には利用者のPC側にある
*2
サービス提供側インフラを使うパターンもありそうだが、本質ではないので割愛、ここでは「なし」にしておく
「サービス提供側インフラ」について
うちはAWS使ってますよ、うちでサーバー持ってるわけじゃないです、とかは違う
それでも「うちが運用している」ことに変わりはない
3rd party storageはここがなくなりますsta.icon
3rd party storageではデータベースを保守するという概念がなくなる
それは3rd party storage事業者の仕事
hr.icon
以下詳細
https://gyazo.com/728167d58ee320422123e7ea04764c9b
このようなサービスXのこと
ITに詳しくない人にtodo.html + READMEを渡すくらいで、todo.htmlが使えるようなるレベル
こっちでも詳しく書いた&色々コメントもらって盛り上がった
Ans: 概念的には似ているが、違う
DaaSは分析の文脈(でかいデータ)を対象にしている
第三者ストレージでは個人レベルのアプリの保存先、など小さな単位が対象
Ans: Yes
さらに欲しいのは
もうちょっとローカルストレージみたいに何でも置けるkv
IT知らない人(REST API知らない人とか)でも使える優しさ
以下のようなストレージサービスのこと
利用者Aが新規登録すると、key-valueストアが100MB分確保される(サイズの値は適当)
構造
A's storage
store-for-toolA
key1: value1
key2: value2
……
store-for-toolB
……
……
---
つまりN-store持てる
ストアの新規作成とアクセス方法
新規作成は、ログインしたAだけが行える
ストアにはq0LihEQYGHkEUI9gみたいなキーが発行される(Sensitive)
アクセス時は、jsでこうする
code:js
const user = 'stakiran-(ACCESSKEY)'
const pass = 'stakiran-(SECRETKEY)'
const store_key = 'q0LihEQYGHkEUI9g'
client.init(user, pass, store_key)
client.set('key1', 'value1')
事前にaccess/secretを発行しておいた上で、さらにストアキーも使う
clientは第三者ストレージが提供するライブラリ
ローカルに置いたhtmlファイルからでも(ストアを)いじれる
ここが最大のポイントsta.icon*2
いや、もっと思い切れる
code:js
const your_app1_key = 'q0LihEQYGHkEUI9g'
client.init(your_app1_key)
client.set('key1', 'value1')
keyがバレたらおしまいだけど、key一つでストアつくれる手軽さがある
ストアの削除などデリケートな操作は管理者権限必要にする、などバランス整えてもいいだろう
何が嬉しいか
開発者がめっちゃ楽になる
ローカルで動くindex.htmlだけつくればいい
ストレージ部分は、第三者ストレージ提供側が責任を負う
利用者は、どのストアに入れるかを自分でつくって指定する
第三者ストレージを使ったtoolAのファイル構造
toolA/
index.html
main.js
config.js
code:config.js
const user = 'stakiran-(ACCESSKEY)'
const pass = 'stakiran-(SECRETKEY)'
const store_key = 'q0LihEQYGHkEUI9g'
こんな感じでローカルに置いたらいい
こういうストレージサービスがあったら、webアプリ開発の敷居がマジで下がると思っているー
ゲームは数MBくらいでコンパクトに配布されている
利用者は、ゲームの他に「ランタイム」をインストールしておかねばならなかった
ランタイムにはゲームで使われてるデータ色々入ってる(データライブラリ)
これと似た発想とでも言えばいいのか